/*
        BCDSTART:begin 
                if(equal_flag) begin
                    bcd_out_data <= bcd_out;
                    state <= BCDCONVERT; 
                end else begin
                    
                    state <= BCDSTART; 
                end
           
            end
        BCDCONVERT:begin		
                if(cnt_convert>= 5) begin 
                    cnt_convert <= 0; cnt_send <= 0; state <= BCDSEND; 
                end else begin
                    cnt_convert <= cnt_convert + 1'b1; 
                    bcd_out_data <= bcd_out_data << 4;                  
                    state <= BCDCONVERT;
                end               
                case(bcd_out_data[19:16])
                    4'd0: bcd_data_reg[cnt_convert] <= "0";  
                    4'd1: bcd_data_reg[cnt_convert] <= "1"; 
                    4'd2: bcd_data_reg[cnt_convert] <= "2"; 
                    4'd3: bcd_data_reg[cnt_convert] <= "3"; 
                    4'd4: bcd_data_reg[cnt_convert] <= "4"; 
                    4'd5: bcd_data_reg[cnt_convert] <= "5"; 
                    4'd6: bcd_data_reg[cnt_convert] <= "6"; 
                    4'd7: bcd_data_reg[cnt_convert] <= "7"; 
                    4'd8: bcd_data_reg[cnt_convert] <= "8"; 
                    4'd9: bcd_data_reg[cnt_convert] <= "9"; 
                default:;
                endcase              
			end
        BCDSEND:begin
                if(cnt_send >= 5) begin cnt_send <= 0;equal_data_flag <= 0; state <= BCDSTART; end 
                else begin
                    state <= SENDDATA;
                    equal_data_flag <= 1; 
                    data_out <= bcd_data_reg[cnt_send];
                end
            end 
            
       SENDDATA:begin
                    if(uart_tx_valid) begin                          
                        data_out <= bcd_data_reg[cnt_send];
                    end else begin
                        cnt_send <= cnt_send + 1'b1;
                        state <= BCDSEND;  
                    end
        end
        default:;
        endcase
*/

            repeat(15)//使用repeat语句进行循环计算      
               begin            
                bcd_result[0] = bin[15];                     
               if(bcd_result[3:0] > 4)            
                bcd_result[3:0]=bcd_result[3:0]+ 4'd3;      
               if(bcd_result[7:4] > 4)            
                bcd_result[7:4]=bcd_result[7:4]+4'd3;  
                
               if(bcd_result[11:8] > 4)   	   
                bcd_result[11:8] = bcd_result[11:8]+4'd3; //扩展时应参照此三条if语句续写   
               if(bcd_result[15:12] > 4)   	   
                bcd_result[15:12]= bcd_result[15:12]+ 4'd3;  
                
               if(bcd_result[19:16] > 4)   	   
                bcd_result[19:16]= bcd_result[19:16]+ 4'd3; 
  
                bcd_result=bcd_result<<1;
                bin=bin<<1;
            end         
            bcd_result[0]= bin[15]; 
            bcd<=bcd_result; 